package 炫彩元素类

import (
	xc "gitee.com/go_888/xcgui/xcgui/xc"
)

// X结构_工具条 工具条.
type X结构_工具条 struct {
	X结构_基础元素
}

// 工具条_创建, 创建工具条元素; 如果指定了父为窗口, 默认调用 XWnd_AddToolBar 函数, 将工具条添加到窗口非客户区.
//
// x: 元素x坐标.
//
// y: 元素y坐标.
//
// cx: 宽度.
//
// cy: 高度.
//
// hParent: 父是窗口资源句柄或UI元素资源句柄. 如果是窗口资源句柄将被添加到窗口, 如果是元素资源句柄将被添加到元素.
func X创建工具条(x坐标, y坐标, 宽度, 高度 int32, 父窗口句柄 int) *X结构_工具条 {
	p := &X结构_工具条{}
	p.X设置句柄(xc.X工具条_创建(x坐标, y坐标, 宽度, 高度, 父窗口句柄))
	return p
}

// 从句柄创建对象.
func X创建工具条并按句柄(句柄 int) *X结构_工具条 {
	p := &X结构_工具条{}
	p.X设置句柄(句柄)
	return p
}

// 从name创建对象, 失败返回nil.
func X创建工具条并按名称(名称 string) *X结构_工具条 {
	handle := xc.X取对象并按名称(名称)
	if handle > 0 {
		p := &X结构_工具条{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID创建对象, 失败返回nil.
func X创建工具条并按UID(UID int32) *X结构_工具条 {
	handle := xc.X取对象并按UID(UID)
	if handle > 0 {
		p := &X结构_工具条{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID名称创建对象, 失败返回nil.
func X创建工具条并按UID名称(名称 string) *X结构_工具条 {
	handle := xc.X取对象并按UID名称(名称)
	if handle > 0 {
		p := &X结构_工具条{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 工具条_插入元素, 插入元素到工具条, 返回插入位置索引.
//
// hNewEle: 将要插入的元素.
//
// index: 插入位置索引, (-1)插入末尾.
func (t *X结构_工具条) X插入元素(元素 int, 位置索引 int32) int32 {
	return xc.X工具条_插入元素(t.X句柄, 元素, 位置索引)
}

// 工具条_插入分割栏, 插入分隔符到工具条, 返回插入位置索引.
//
// index: 插入位置索引, (-1)插入末尾.
//
// color: xc.RGBA 颜色. 可填 xc.RGBA(128, 128, 128, 255).
func (t *X结构_工具条) X插入分割栏(位置索引 int32, ABGR颜色 int) int32 {
	return xc.X工具条_插入分割栏(t.X句柄, 位置索引, ABGR颜色)
}

// 工具条_启用下拉菜单, 启用下拉菜单, 显示隐藏的项.
//
// bEnable: 是否启用.
func (t *X结构_工具条) X启用下拉菜单(是否启用 bool) *X结构_工具条 {
	xc.X工具条_启用下拉菜单(t.X句柄, 是否启用)
	return t
}

// 工具条_取元素, 获取工具条上指定元素, 返回元素句柄.
//
// index: 索引值.
func (t *X结构_工具条) X取元素(索引值 int32) int {
	return xc.X工具条_取元素(t.X句柄, 索引值)
}

// 工具条_取左滚动按钮, 获取左滚动按钮句柄.
func (t *X结构_工具条) X取左滚动按钮() int {
	return xc.X工具条_取左滚动按钮(t.X句柄)
}

// 工具条_取右滚动按钮, 获取右滚动按钮句柄.
func (t *X结构_工具条) X取右滚动按钮() int {
	return xc.X工具条_取右滚动按钮(t.X句柄)
}

// 工具条_取菜单按钮, 获取菜单按钮句柄.
func (t *X结构_工具条) X取菜单按钮() int {
	return xc.X工具条_取菜单按钮(t.X句柄)
}

// 工具条_置间距, 设置对象之间的间距.
//
// nSize: 间距大小.
func (t *X结构_工具条) X设置间距(间距大小 int32) *X结构_工具条 {
	xc.X工具条_设置间距(t.X句柄, 间距大小)
	return t
}

// 工具条_删除元素, 删除元素, 并且销毁.
//
// index: 索引值.
func (t *X结构_工具条) X删除元素(索引值 int32) *X结构_工具条 {
	xc.X工具条_删除元素(t.X句柄, 索引值)
	return t
}

// 工具条_删除全部, 删除所有元素, 并且销毁.
func (t *X结构_工具条) X删除全部() *X结构_工具条 {
	xc.X工具条_删除全部(t.X句柄)
	return t
}
